
const requireContext = require.context('../pages', true, /index.tsx/);
const components = {};

// 遍历files对象，构建components键值
requireContext.keys().forEach(key => {
    components[key.replace(/(\.\/|\.tsx)/g, '')] = requireContext(key).default
})


export function createComponentByStr(component: any) {
    // console.log("requireContext", requireContext)
    console.log("components", components)
    console.log("components", components["blog/articles/index"])
    // console.log("component", component)
    // console.log("requireContext(component).default", requireContext(component).default)
    return components["blog/articles/index"]
    // return requireContext(`./${component}.tsx`).default;
}

//
// import Layout from "../layout"
//
// // 匹配views里面所有的 .tsx 文件
// export const modules: { [key: string]: () => Promise<any> } = {};
//
// function importAll(r: __WebpackModuleApi.RequireContext) {
//     r.keys().forEach(key => {
//         modules[key] = () => r(key);
//     });
// }
//
// importAll(require.context('./../pages', true, /\.tsx$/));
//
// // 遍历后台传来的路由字符串，转换为组件对象
// export function filterAsyncRouter(asyncRouterMap: any, lastRouter = false, type = false) {
//     console.log("modules", modules)
//
//     return asyncRouterMap.filter((route: any) => {
//         if (type && route.children) {
//             // route.children = filterChildren(route.children)
//         }
//         if (route.components) {
//             // Layout ParentView 组件特殊处理
//             if (route.components === 'Layout') {
//                 route.components = Layout
//             } else if (route.components === 'ParentView') {
//                 // route.components = ParentView
//             } else if (route.components === 'InnerLink') {
//                 // route.components = InnerLink
//             } else {
//                 route.components = loadView(route.components)
//             }
//         }
//         if (route.children != null && route.children && route.children.length) {
//             // route.children = filterAsyncRouter(route.children, route, type)
//         } else {
//             delete route['children']
//             delete route['redirect']
//         }
//         return true
//     })
// }
//
// function filterChildren(childrenMap, lastRouter = false) {
//     var children = []
//     childrenMap.forEach((el, index) => {
//         if (el.children && el.children.length) {
//             if (el.components === 'ParentView' && !lastRouter) {
//                 el.children.forEach(c => {
//                     c.path = el.path + '/' + c.path
//                     if (c.children && c.children.length) {
//                         children = children.concat(filterChildren(c.children, c))
//                         return
//                     }
//                     children.push(c)
//                 })
//                 return
//             }
//         }
//         if (lastRouter) {
//             el.path = lastRouter.path + '/' + el.path
//             if (el.children && el.children.length) {
//                 children = children.concat(filterChildren(el.children, el))
//                 return
//             }
//         }
//         children = children.concat(el)
//     })
//     return children
// }
//
// // 动态路由遍历，验证是否具备权限
// // export function filterDynamicRoutes(routes) {
// //     const res = []
// //     routes.forEach(route => {
// //         if (route.permissions) {
// //             if (auth.hasPermiOr(route.permissions)) {
// //                 res.push(route)
// //             }
// //         } else if (route.roles) {
// //             if (auth.hasRoleOr(route.roles)) {
// //                 res.push(route)
// //             }
// //         }
// //     })
// //     return res
// // }
//
// export const loadView = (view) => {
//     let res;
//     for (const path in modules) {
//         const dir = ""// path.split('pages/')[1].split('.tsx')[0];
//         if (dir === view) {
//             res = () => modules[path]();
//         }
//     }
//     return res;
// }
